package com.ruoyi.system.service.impl;

import java.util.List;

import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.system.domain.ZtfCodeNc;
import com.ruoyi.system.domain.ZtfSysUserbean;
import com.ruoyi.system.mapper.ZtfCodeNcMapper;
import com.ruoyi.system.mapper.ZtfSysUserbeanMapper;
import com.ruoyi.system.service.IZtfCodeNcService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 激活码，可短信发出或线下发给Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-05-30
 */
@Service
public class ZtfCodeNcServiceImpl implements IZtfCodeNcService
{
    @Autowired
    private ZtfCodeNcMapper ztfCodeNcMapper;

    @Autowired
    private ZtfSysUserbeanMapper ztfSysUserbeanMapper;
    /**
     * 查询激活码，可短信发出或线下发给
     * 
     * @param codeUuid 激活码，可短信发出或线下发给主键
     * @return 激活码，可短信发出或线下发给
     */
    @Override
    public ZtfCodeNc selectZtfCodeNcByCodeUuid(String codeUuid)
    {
        return ztfCodeNcMapper.selectZtfCodeNcByCodeUuid(codeUuid);
    }

    /**
     * 查询激活码，可短信发出或线下发给列表
     * 
     * @param ztfCodeNc 激活码，可短信发出或线下发给
     * @return 激活码，可短信发出或线下发给
     */
    @Override
    public List<ZtfCodeNc> selectZtfCodeNcList(ZtfCodeNc ztfCodeNc)
    {
        return ztfCodeNcMapper.selectZtfCodeNcList(ztfCodeNc);
    }

    /**
     * 新增激活码，可短信发出或线下发给
     * 
     * @param ztfCodeNc 激活码，可短信发出或线下发给
     * @return 结果
     */
    @Override
    public int insertZtfCodeNc(ZtfCodeNc ztfCodeNc)
    {
        //设置激活码(随机四位数)
//        ztfCodeNc.setCodeName(IdUtils.fastSimpleUUID());
        //生成uuid
        //通过用户id查询用户手机号
//        ZtfSysUserbean sysUserbean=ztfSysUserbeanMapper.selectSysUserbeanByUserId(Long.valueOf(ztfCodeNc.getUseridUuid()));
        ztfCodeNc.setCodeUuid(IdUtils.simpleUUID());
       ZtfCodeNc ztfCodeNc1=ztfCodeNcMapper.selectZtfCodeNcByCodeName(ztfCodeNc.getCodeName());
       if(ztfCodeNc1!=null){
           throw new ServiceException("该激活码已经存在",409);
       }
//       if(!ztfCodeNc.getXphone().equals(sysUserbean.getPhonenumber())){
//           throw new ServiceException("请输入正确的用户手机号！",406);
//       }
        return ztfCodeNcMapper.insertZtfCodeNc(ztfCodeNc);
    }

    /**
     * 修改激活码，可短信发出或线下发给
     * 
     * @param ztfCodeNc 激活码，可短信发出或线下发给
     * @return 结果
     */
    @Override
    public int updateZtfCodeNc(ZtfCodeNc ztfCodeNc)
    {
        return ztfCodeNcMapper.updateZtfCodeNc(ztfCodeNc);
    }

    /**
     * 批量删除激活码，可短信发出或线下发给
     * 
     * @param codeUuids 需要删除的激活码，可短信发出或线下发给主键
     * @return 结果
     */
    @Override
    public int deleteZtfCodeNcByCodeUuids(String[] codeUuids)
    {
        return ztfCodeNcMapper.deleteZtfCodeNcByCodeUuids(codeUuids);
    }

    /**
     * 删除激活码，可短信发出或线下发给信息
     * 
     * @param codeUuid 激活码，可短信发出或线下发给主键
     * @return 结果
     */
    @Override
    public int deleteZtfCodeNcByCodeUuid(String codeUuid)
    {
        return ztfCodeNcMapper.deleteZtfCodeNcByCodeUuid(codeUuid);
    }

    /**
     * 批量修改激活码
     * @param ids
     * @return
     */
    @Override
    public int updateZtfCodeNcByids(String[] ids) {
        return ztfCodeNcMapper.updateZtfCodeNcByids(ids);
    }
}
